// 构造函数定义(帕斯卡命名法:每个单词首字母大写)
function Person(name,age){
    this.name = name  //用this关键字为即将创建的对象添加属性
    this.age = age 
    //如果在构造函数中添加方法，那么每次创建对象时都会重新创建一次方法，造成内存浪费
    // this.sayName = function(){  //通过this关键字为即将创建的对象添加方法
    //     console.log(this.name)
    // }
}

/** 
 * 构造函数与Prototype
 *   构造函数自带prototype属性
 *   用于添加所有实例共享的方法和属性
 */

Person.prototype.sayName = function(){  //通过prototype给原型上添加一个属性用于共享变量和节省内存
    console.log(this.name)
}

const p1 = new Person('zyj',22)
p1.sayName()
const p2 = new Person('zmq',20)
p2.sayName()